﻿#include <iostream>
#include <vector>
using namespace std;

class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int totalSum = 0;
        // 计算数组所有元素的总和
        for (int num : nums) {
            totalSum += num;
        }
        int leftSum = 0;
        for (int i = 0; i < nums.size(); ++i) {
            // 右侧元素的和等于总和减去左侧元素的和再减去当前元素
            int rightSum = totalSum - leftSum - nums[i];
            if (leftSum == rightSum) {
                return i;
            }
            // 左侧元素和累加当前元素
            leftSum += nums[i];
        }
        // 没有找到中心下标，返回 -1
        return -1;
    }
};
int main() {
    // 测试示例 1
    vector<int> nums1 = { 1, 7, 3, 6, 5, 6 };
    Solution sol1;
    int result1 = sol1.pivotIndex(nums1);
    cout << "示例 1 的中心下标：" << result1 << endl;

    // 测试示例 2
    vector<int> nums2 = { 1, 2, 3 };
    Solution sol2;
    int result2 = sol2.pivotIndex(nums2);
    cout << "示例 2 的中心下标：" << result2 << endl;

    // 可以添加更多测试用例
    return 0;
}
